import axios from 'axios'
import router from '../router'; // 根据实际情况调整路径
// 在任何.js或.ts文件中


// 超时时间 10s
const http = axios.create({
    // 服务地址
    baseURL: import.meta.env.VITE_BASE_URL,
    timeout: 10000
});

// 添加拦截器
//添加请求拦截器
http.interceptors.request.use(function(config){
    //在发送请求之前做某事
    const token = localStorage.getItem('pz_token');
    // 不需要添加token的api
    const whiteUrl = ['/get/code','/login'];
    // 对请求增加token
    if (token && !whiteUrl.includes(config.url)){
        config.headers['pz_token'] = token
    }
    return config;
},function(error){
    //请求错误时做些事
    return Promise.reject(error);
});

//添加响应拦截器
http.interceptors.response.use(function(response){

    // // 对接口异常的数据，给用户提示
    if (response.data.code === 501){
        // 501 表示token错误
        console.log(response.data.msg);
        ElMessage.warning(response.data.msg);
        // 清理token
        localStorage.removeItem('pz_token');
        // 跳转回登陆页面
        router.push('/login')

    } else if (response.data.code === 502){
        // 502 表示token过期
        console.log(response.data.msg);
        ElMessage.warning(response.data.msg);
        // 清理token
        localStorage.removeItem('pz_token');
        // 跳转回登陆页面
        router.push('/login')
    }

    //对响应数据做些事
    return response;
},function(error){
    //请求错误时做些事
    return Promise.reject(error);
});

export default http
